<?php

namespace App\Exceptions;

use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;

class Handler extends ExceptionHandler {
	/**
	 * A list of the exception types that are not reported.
	 *
	 * @var array
	 */
	protected $dontReport = [ 
			AuthorizationException::class,
			HttpException::class,
			ModelNotFoundException::class,
			ValidationException::class 
	];
	
	/**
	 * A list of the inputs that are never flashed for validation exceptions.
	 *
	 * @var array
	 */
	protected $dontFlash = [ 
			'password',
			'password_confirmation' 
	];
	
	/**
	 * Report or log an exception.
	 *
	 * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
	 *
	 * @param \Exception $exception        	
	 * @return void
	 */
	public function report(Exception $exception) {
		if (app ()->bound ( 'sentry' ) && $this->shouldReport ( $exception )) {
			app ( 'sentry' )->captureException ( $exception );
		}
		
		parent::report ( $exception );
	}
	
	/**
	 * Render an exception into an HTTP response.
	 *
	 * @param \Illuminate\Http\Request $request        	
	 * @param \Exception $exception        	
	 * @return \Illuminate\Http\Response
	 */
	public function render($request, Exception $exception) {
		return parent::render ( $request, $exception );
	}
}
